﻿using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Dapper;
using Dapper.Contrib.Extensions;

namespace PortalWeb.DapperDao
{
    public class DapperDbContext : IDapperDbContext
    {
        public T GetById<T>(dynamic primaryId) where T : class
        {
            throw new NotImplementedException();
        }

        public T GetById<T>(IDbConnection conn, dynamic primaryId, IDbTransaction trans) where T : class
        {
            throw new NotImplementedException();
        }

        public T GetDefaultByName<T>(string colName, string value) where T : class
        {
            throw new NotImplementedException();
        }

        public T GetFirst<T>(string sql, dynamic param = null, bool buffered = true) where T : class
        {
            throw new NotImplementedException();
        }

        public T GetFirst<T>(IDbConnection conn, string sql, dynamic param = null, IDbTransaction trans = null, bool buffered = true) where T : class
        {
            throw new NotImplementedException();
        }

        public IEnumerable<T> GetByIds<T>(IList<dynamic> ids) where T : class
        {
            throw new NotImplementedException();
        }

        public IEnumerable<T> GetAll<T>() where T : class
        {
            throw new NotImplementedException();
        }

        public IEnumerable<T> Query<T>(string sql, dynamic param = null, bool buffered = true) where T : class
        {
            throw new NotImplementedException();
        }

        public IEnumerable<T> Query<T>(IDbConnection conn, string sql, dynamic param = null, IDbTransaction trans = null,
            bool buffered = true) where T : class
        {
            throw new NotImplementedException();
        }

        public IEnumerable<dynamic> Query(IDbConnection conn, string sql, dynamic param = null, IDbTransaction trans = null,
            bool buffered = true)
        {
            throw new NotImplementedException();
        }

        public IEnumerable<TReturn> Query<TFirst, TSecond, TReturn>(IDbConnection conn, string sql, Func<TFirst, TSecond, TReturn> map, dynamic param = null,
            IDbTransaction transaction = null, bool buffered = true, string splitOn = "Id", int? commandTimeout = null)
        {
            throw new NotImplementedException();
        }

     

        public int Count<T>(IDbConnection conn, string sql, bool buffered = false) where T : class
        {
            throw new NotImplementedException();
        }

        public int Count(string sql, DynamicParameters parameters = null)
        {
            throw new NotImplementedException();
        }

       
        public int Execute(IDbConnection conn, string sql, dynamic param = null, IDbTransaction transaction = null)
        {
            throw new NotImplementedException();
        }

        public int ExecuteCommand(IDbCommand cmd)
        {
            throw new NotImplementedException();
        }

        public int ExecuteProc(IDbConnection conn, string procName, DynamicParameters param = null)
        {
            throw new NotImplementedException();
        }

        public IList<T> ExecProcQuery<T>(IDbConnection conn, string procName, DynamicParameters param) where T : class
        {
            throw new NotImplementedException();
        }

        public dynamic Insert<T>(T entity) where T : class
        {
            throw new NotImplementedException();
        }

        public dynamic Insert<T>(IDbConnection conn, T entity, IDbTransaction transaction = null) where T : class
        {
            throw new NotImplementedException();
        }

        public void InsertBatch<T>(IDbConnection conn, IEnumerable<T> entityList, IDbTransaction transaction = null) where T : class
        {
            throw new NotImplementedException();
        }

        public bool Update<T>(T entity) where T : class
        {
            throw new NotImplementedException();
        }

        public bool Update<T>(IDbConnection conn, T entity, IDbTransaction transaction = null) where T : class
        {
            throw new NotImplementedException();
        }

        public bool UpdateBatch<T>(IDbConnection conn, IEnumerable<T> entityList, IDbTransaction transaction = null) where T : class
        {
            throw new NotImplementedException();
        }

        public bool Delete<T>(dynamic primaryId) where T : class
        {
            throw new NotImplementedException();
        }

        public bool Delete<T>(IDbConnection conn, dynamic primaryId, IDbTransaction transaction = null) where T : class
        {
            throw new NotImplementedException();
        }


        public int DeleteBatch<T>(IDbConnection conn, IEnumerable<dynamic> ids, IDbTransaction transaction = null) where T : class
        {
            throw new NotImplementedException();
        }
    }
}
